package com.aidong.pay.dao;

import java.util.List;
import java.util.Map;

import com.aidong.pay.entity.Recommend;

public interface OrderManagementDao {

	/**
	 * 申请退款
	 * 
	 * @param map
	 */
	public void addApplyOrderRefund(Map<String, Object> map);

	/**
	 * 预约状态更改
	 * 
	 * @param map
	 */
	public int editAppointStatus(Map<String, Object> map);
	public int editAppointStatusNew(Map<String, Object> map);

	/**
	 * 更改订单状态
	 * 
	 * @param map
	 */
	public void editOrderPayStatus(Map<String, Object> map);

	/**
	 * 删除预约记录
	 * 
	 * @param map
	 */
	public void delAppointStatus(Map<String, Object> map);

	/**
	 * 删除订单
	 * 
	 * @param map
	 */
	public void delOrderPayStatus(Map<String, Object> map);

	/**
	 * 活动订单详情
	 * 
	 * @param orderId
	 * @return
	 */
	public Map<String, Object> getActiveOrderDetail(int orderId);

	/**
	 * 课程订单详情
	 * 
	 * @param orderId
	 * @return
	 */
	public Map<String, Object> getCourseOrderDetail(int orderId);

	/**
	 * 餐饮订购详情
	 * 
	 * @param orderId
	 * @return
	 */
	public Map<String, Object> getFoodOrderDetail(int orderId);

	/**
	 * 超时取消
	 * 
	 * @param nap
	 */
	public void editTimeoutCancel(Map<String, Object> nap);

	/**
	 * 查找待支付状态的订单
	 * 
	 * @return
	 */
	public List<Map<String, Object>> getNoPaymentStatusOrders();

	/**
	 * 修改订单信息
	 * 
	 * @param map
	 */
	public void editOrderPayInfo(Map<String, Object> map);

	/**
	 * 课程上课短息提醒
	 * 
	 * @return
	 */
	public List<Map<String, Object>> getHaveCourseRemindtus();

	/**
	 * 活动参加短信提醒
	 * 
	 * @return
	 */
	public List<Map<String, Object>> getHaveactivityRemindtus();
	/**
	 * 课程上课短息提醒
	 * 
	 * @return
	 */
	public List<Map<String, Object>> getHaveCourseRemindtusNew();

	/**
	 * 活动参加短信提醒
	 * 
	 * @return
	 */
	public List<Map<String, Object>> getHaveactivityRemindtusNew();

	/**
	 * 更改短信提醒标记位
	 * 
	 * @param orderId
	 */
	public void editOrderSmsReminderFlg(String orderId);

	/**
	 * 查询订单回调状态
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> getOrderBackStatus(Map<String, Object> map);

	/**
	 * 获取票务的取货方式
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> getCampaignPickUpWay(Map<String, Object> map);

	/**
	 * 获取订单对应的虚拟码
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> getMovieTicketNum(Map<String, Object> map);

	/**
	 * 修改订单短信状态
	 * 
	 * @param map
	 */
	public void editOrderSmsStatus(Map<String, Object> map);

	/**
	 * 记录支付回调
	 * 
	 * @param map
	 */
	public void addPayCallBack(Map<String, Object> map);

	/**
	 * 兑换券使用
	 * 
	 * @param map
	 */
	public void editExchangeTicketsInfo(Map<String, Object> map);

	/**
	 * 代金券使用
	 * 
	 * @param map
	 */
	public void editCouponsInfo(Map<String, Object> map);

	public void editexchangeTicketsInfoOrderId(Map<String, Object> map);

	public void editCouponsInfoOrderId(Map<String, Object> map);

	public void editCouponsInfoOrderIdZero(Map<String, Object> map);

	public void editexchangeTicketsInfoOrderIdUse(Map<String, Object> map);

	public void editCouponsInfoOrderIdUse(Map<String, Object> map);

	public void editDiscountInfoOrderId(Map<String, Object> map);

	public void editDiscountInfoOrderIdUse(Map<String, Object> map);

	/**
	 * 设置电影券未被购买
	 * 
	 * @param map
	 */
	public void setMovieTicketsUnuse(Map<String, Object> map);

	/**
	 * 设置代金券为未使用
	 * 
	 * @param map
	 */
	public void setCouponsTicketsUnuse(Map<String, Object> map);

	/**
	 * 设置折扣券为未使用
	 * 
	 * @param map
	 */
	public void setDiscountTicketsUnuse(Map<String, Object> map);

	/**
	 * 设置兑换券为未使用
	 * 
	 * @param map
	 */
	public void setExchangeTicketsUnuse(Map<String, Object> map);

	/**
	 * 根据订单号查询电影券信息
	 * 
	 * @param map
	 * @return
	 */
	public Map<String, Object> selectMoviceTickets(Map<String, Object> map);

	/**
	 * 取消预约后设置已报满的活动为未报满
	 * 
	 * @param orderId
	 */
	public void setActivityFlag(int orderId);

	public Recommend getRecommendInfo(String orderId);
	
	public int editCampaignIsFull(int orderId);
	
	/**
	 * 修改嘉年华活动
	 * @param subscribeId
	 * @return
	 */
	public int editCarnivalCampaignIsFull(int subscribeId);
	
	public int getLuckyDrawBySubscribeId(Map<String, Object> map);
}
